﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Collections;
using System.Threading;
using Banesco.Entidades;
using System.IO;


namespace WebCliente
{
    public class BanescoBase : System.Web.UI.Page
    {
        public void ShowStatus(string Texto)
        {
            string script = null;
            Type cstype = this.GetType();
            Texto = Texto.Replace("\\r\\n", " ");
            Texto = Texto.Replace("\\\\", " ");
            Texto = Texto.Replace("'", " ");
            Texto = Texto.Replace("\"", "*");
            script = "<SCRIPT language='javascript'> window.alert('" + Texto.Trim() + "'); </SCRIPT>";
            ScriptManager.RegisterStartupScript(this, cstype, "LogicStudioAlerta", script, false);
        }

        public void ShowStatusIra(string Texto, string Url)
        {
            string script = null;
            Type cstype = this.GetType();
            Texto = Texto.Replace("\\r\\n", " ");
            Texto = Texto.Replace("\\\\", " ");
            Texto = Texto.Replace("'", " ");
            Texto = Texto.Replace("\"", "*");
            script = "<SCRIPT language='javascript'> window.alert('" + Texto.Trim() + "'); window.location.href='" + Url + "'; </SCRIPT>";
            ScriptManager.RegisterStartupScript(this, cstype, "LogicStudioAlerta", script, false);
        }

        public void ShowStatusandClose(string Texto)
        {
            string script = null;
            Type cstype = this.GetType();
            Texto = Texto.Replace("\\r\\n", " ");
            Texto = Texto.Replace("\\\\", " ");
            Texto = Texto.Replace("'", " ");
            Texto = Texto.Replace("\"", "*");
            script = "<SCRIPT language='javascript'> window.alert('" + Texto.Trim() + "'); window.close();</SCRIPT>";
            ScriptManager.RegisterStartupScript(this, cstype, "LogicStudioAlerta", script, false);
        }

        public void AbrirPopup(string Pagina, int Width, int Height)
        {
            string Script = String.Format("<script type='text/javascript'>window.open('{0}','ProntoPopUp','width={1},height={2},left=100,top=100, toolbar=0,resizable=0,status=0,scrollbars=1');</script>", Pagina, Width, Height);
            ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "ProntoPopUp", Script, false);
        }

        public void AbrirPopup(string Pagina, int Width, int Height, string namePopup)
        {
            string Script = String.Format("<script type='text/javascript'>window.open('{0}','ProntoPopUp{1}','width={2},height={3},left=100,top=100, toolbar=0,resizable=0,status=0,scrollbars=1');</script>", Pagina, namePopup, Width, Height);
            ScriptManager.RegisterStartupScript(this.Page, this.GetType(), namePopup, Script, false);
        }

        public void AbrirPopupInCenter(string Pagina, int Width, int Height, string namePopup)
        {
            string Script = "";
            //Script = "function OpenWindowCenter(){";
            Script += String.Format("var winl = (screen.width/2)-({0}/2);", Width);
            Script += String.Format("var wint = (screen.height/2)-({0}/2);", Height);
            Script += String.Format("window.open('{0}','ProntoPopUp{1}','width={2},height={3},left= ' + winl +',top=' + wint + ', toolbar=0,resizable=0,status=0,scrollbars=1');", Pagina, namePopup, Width, Height);
            //Script += "}";
            ScriptManager.RegisterStartupScript(this.Page, this.GetType(), namePopup, Script, true);
        }

        public void CargarDropDown(DropDownList ddl, DataTable dt, string TextField, string ValueField, bool IncluirItemTodos, string ItemSeleccionado)
        {

            ddl.ClearSelection();
            ddl.DataSource = dt;
            ddl.DataTextField = TextField;
            ddl.DataValueField = ValueField;
            ddl.DataBind();
            if (IncluirItemTodos)
            {
                ddl.Items.Insert(0, new ListItem(Constantes.LISTASSELECCIONTODOS, Constantes.LISTASTODOSVALOR));
            }
            if (!string.IsNullOrEmpty(ItemSeleccionado))
            {
                if ((ddl.Items.FindByValue(ItemSeleccionado) != null))
                {
                    if (!(ddl.SelectedValue == ItemSeleccionado))
                    {
                        ddl.SelectedValue = ItemSeleccionado;
                    }
                }
                else
                {

                    if (!IncluirItemTodos)
                    {
                        ddl.Items.Insert(0, new ListItem(ItemSeleccionado, Constantes.LISTASTODOSVALOR));
                        ddl.SelectedIndex = 0;
                    }
                    else
                    {
                        ddl.Items.Add(new ListItem(ItemSeleccionado, Constantes.LISTASTODOSVALOR));
                        ddl.SelectedIndex = ddl.Items.Count - 1;
                    }
                }
            }
        }

        protected int ConvertirNumero(string numero)
        {
            int numeroRetornado;
            if (numero == string.Empty)
                numeroRetornado = 0;
            else
                numeroRetornado = Convert.ToInt32(numero);

            return numeroRetornado;
        }

        protected decimal ConvertirDecimal(string numero)
        {
            decimal numeroRetornado;
            if (numero == string.Empty)
                numeroRetornado = (decimal)(0.0);
            else
                numeroRetornado = Convert.ToDecimal(numero);

            return numeroRetornado;
        }

        protected int ObtenerNumero(TextBox numero)
        {
            int numeroRetornado;
            if (numero.Text == string.Empty)
                numeroRetornado = 0;
            else
                numeroRetornado = Convert.ToInt32(numero.Text);

            return numeroRetornado;
        }

        protected decimal ObtenerDecimal(TextBox txt)
        {
            try
            {
                return Convert.ToDecimal(txt.Text);
            }
            catch
            {
                return 0;
            }
        }

        //protected DateTime ConvertirFecha(String fecha)
        //{
        //    DateTime fechaRetornada;
        //    try
        //    {
        //        if (fecha == string.Empty)
        //        {
        //            fechaRetornada = DateTime.Now;
        //            fechaRetornada = fechaRetornada.AddYears(1000);
        //        }
        //        else
        //        {
        //            System.Globalization.CultureInfo lCulture = new System.Globalization.CultureInfo("es-PA");
        //            lCulture.DateTimeFormat.ShortDatePattern = "dd/MM/yyyy";

        //            DateTime fechaConvertir = Convert.ToDateTime(fecha, lCulture );
        //            string d, m, y, nf;
        //            d = Convert.ToString(fechaConvertir.Day);
        //            m = Convert.ToString(fechaConvertir.Month);
        //            y = Convert.ToString(fechaConvertir.Year);
        //            nf = d + "/" + m + "/" + y;
        //            fechaRetornada = Convert.ToDateTime(nf);
        //        }
        //    }
        //    catch
        //    {
        //        fechaRetornada = DateTime.Now;
        //        fechaRetornada = fechaRetornada.AddYears(1000);
        //    }

        //    return fechaRetornada;
        //}

        public DateTime ConvertirFecha(String fecha)
        {
            DateTime fechaRetornada;
            try
            {
                if (fecha == string.Empty)
                {
                    System.Globalization.CultureInfo lCulture = new System.Globalization.CultureInfo("es-PA");
                    lCulture.DateTimeFormat.ShortDatePattern = "dd/MM/yyyy";

                    fechaRetornada = Convert.ToDateTime(DateTime.Now, lCulture);
                    fechaRetornada = fechaRetornada.AddYears(1000);
                }
                else
                {
                    System.Globalization.CultureInfo lCulture = new System.Globalization.CultureInfo("es-PA");
                    lCulture.DateTimeFormat.ShortDatePattern = "dd/MM/yyyy";

                    fechaRetornada = Convert.ToDateTime(fecha, lCulture);
                    //DateTime fechaConvertir = Convert.ToDateTime(fecha, lCulture);
                    //string d, m, y, nf;
                    //d = Convert.ToString(fechaConvertir.Day);
                    //m = Convert.ToString(fechaConvertir.Month);
                    //y = Convert.ToString(fechaConvertir.Year);
                    //nf = d + "/" + m + "/" + y;
                    //fechaRetornada = Convert.ToDateTime(nf);
                }
            }
            catch
            {
                fechaRetornada = DateTime.Now;
                fechaRetornada = fechaRetornada.AddYears(1000);
            }

            return fechaRetornada;
        }

        protected string ObtenerString(TextBox txt)
        {
            try
            {
                return txt.Text;
            }
            catch
            {
                return "";
            }
        }

        protected string ObtenerDDL(DropDownList ddl)
        {
            string retornar = "";
            try
            {
                retornar = ddl.SelectedValue;
                return retornar;
            }
            catch
            {
                return retornar;
            }
        }

        protected String ValorDeCheck(CheckBox check, string valorPositivo, string valorNegativo)
        {
            if (check.Checked)
                return valorPositivo;
            else
                return valorNegativo;
        }

        protected String ValorDeCheck(Boolean valor, string valorPositivo, string valorNegativo)
        {
            if (valor)
                return valorPositivo;
            else
                return valorNegativo;
        }

        protected Boolean AsignarValorDeCheck(string valor, string valorPositivo, string valorNegativo)
        {
            if (valor == valorPositivo)
                return true;
            else
                return false;
        }

        protected string valorDDL(DropDownList ddl)
        {
            return ddl.SelectedValue;
        }

        protected string valorRBL(RadioButtonList rbl)
        {
            return rbl.SelectedValue;
        }

        protected Boolean TipoCuenta(string tipo, string valorddl)
        {
            Boolean valor = false;
            if (tipo == Constantes.AHORROS)
            {
                if (valorddl == "A")
                    valor = true;
                else
                    valor = false;
            }
            else if (tipo == Constantes.CORRIENTE)
            {
                if (valorddl == "C")
                    valor = true;
                else
                    valor = false;
            }
            return valor;
        }

        protected Boolean ModoApertura(string tipo, string valorddl)
        {
            Boolean valor = false;
            if (tipo == Constantes.EFECTIVO)
            {
                if (valorddl == Constantes.CODEFECTIVO)
                    valor = true;
                else
                    valor = false;
            }
            else if (tipo == Constantes.TRANSFERENCIA)
            {
                if (valorddl == Constantes.CODTRANSFERENCIA)
                    valor = true;
                else
                    valor = false;
            }
            else if (tipo == Constantes.CHEQUELOCAL)
            {
                if (valorddl == Constantes.CODCHEQUELOCAL)
                    valor = true;
                else
                    valor = false;
            }
            else if (tipo == Constantes.CHEQUEEXTRANJERO)
            {
                if (valorddl == Constantes.CODCHEQUEEXTRANJERO)
                    valor = true;
                else
                    valor = false;
            }
            else if (tipo == Constantes.CHEQUEGERENCIABANESCO)
            {
                if (valorddl == Constantes.CODCHEQUEGERENCIABANESCO)
                    valor = true;
                else
                    valor = false;
            }
            else if (tipo == Constantes.CHEQUEGERENCIAOTROBANCO)
            {
                if (valorddl == Constantes.CODCHEQUEGERENCIAOTROBANCO)
                    valor = true;
                else
                    valor = false;
            }
            else if (tipo == Constantes.CHEQUEPROPIO)
            {
                if (valorddl == Constantes.CODCHEQUEPROPIO)
                    valor = true;
                else
                    valor = false;
            }
            else if (tipo == Constantes.DEBITOACUENTA)
            {
                if (valorddl == Constantes.CODDEBITOACUENTA)
                    valor = true;
                else
                    valor = false;
            }
            else if (tipo == Constantes.OTROS)
            {
                if (valorddl == Constantes.CODOTROS)
                    valor = true;
                else
                    valor = false;
            }
            return valor;
        }

        protected int CalculaEdad(DateTime fechaDeNacimiento)
        {

            //string d, m, y, nf;
            //d = Convert.ToString (fechaDeNacimiento.Day) ;
            //m = Convert.ToString (fechaDeNacimiento.Month);
            //y = Convert.ToString (fechaDeNacimiento.Year);
            //nf = d + "/" + m  + "/" + y; 

            //fechaDeNacimiento = Convert.ToDateTime(fechaDeNacimiento.ToString("MM/dd/yyyy"));

            TimeSpan z = DateTime.Now.Subtract(fechaDeNacimiento);

            return (z.Days / 365);
        }

        protected DataTable SelectIntoDataTable(string selectFilter, DataTable sourceDataTable)
        {
            DataTable newDataTable = new DataTable();
            newDataTable = sourceDataTable.Clone();
            DataRow[] DataRows = sourceDataTable.Select(selectFilter);
            //DataRows = sourceDataTable.Select(selectFilter);

            foreach (DataRow typeDataRow in DataRows)
            {
                newDataTable.ImportRow(typeDataRow);
            }
            return newDataTable;

        }

        public string GetCurrentPageName()
        {
            string sPath = System.Web.HttpContext.Current.Request.Url.AbsolutePath;
            System.IO.FileInfo oInfo = new System.IO.FileInfo(sPath);
            string sRet = oInfo.Name;
            return sRet;
        }

        public string formatoIdentificacion(string identificacion)
        {
            string formatoCompleto = "";
            bool primeraletra = false;
            string[] numeros;


            if ((identificacion.Substring(0, 1) == "0") || (identificacion.Substring(0, 1) == "1") || (identificacion.Substring(0, 1) == "2") || (identificacion.Substring(0, 1) == "3") || (identificacion.Substring(0, 1) == "4") || (identificacion.Substring(0, 1) == "5") || (identificacion.Substring(0, 1) == "6") || (identificacion.Substring(0, 1) == "7") || (identificacion.Substring(0, 1) == "8") || (identificacion.Substring(0, 1) == "9"))
            {
                primeraletra = false;
            }
            else
            {
                primeraletra = true;
            }

            if (primeraletra)
            {
                if (identificacion.Substring(0, 1) == "E")
                {
                    numeros = identificacion.Split('-');
                    formatoCompleto = "00-E-" + completarCeros(numeros[1], 5) + "-" + completarCeros(numeros[2], 6);
                }
                else if (identificacion.Substring(0, 1) == "N")
                {
                    numeros = identificacion.Split('-');
                    formatoCompleto = "00-N-" + completarCeros(numeros[1], 5) + "-" + completarCeros(numeros[2], 6);
                }
                else if (identificacion.Substring(0, 1) == "P")
                {
                    numeros = identificacion.Split('-');
                    formatoCompleto = "00-PE-" + completarCeros(numeros[1], 5) + "-" + completarCeros(numeros[2], 6);
                }
                else
                {
                    formatoCompleto = identificacion;
                }
            }
            else
            {

                numeros = identificacion.Split('-');
                if (numeros.Length == 4)
                {
                    formatoCompleto = completarCeros(numeros[0], 2) + "-" + numeros[1] + "-" + completarCeros(numeros[2], 5) + "-" + completarCeros(numeros[3], 6);
                }
                else if (numeros.Length == 3)
                {
                    formatoCompleto = completarCeros(numeros[0], 2) + "--" + completarCeros(numeros[1], 5) + "-" + completarCeros(numeros[2], 6);
                }
                else
                {
                    formatoCompleto = identificacion;
                }

            }

            return formatoCompleto;

        }

        private string completarCeros(string numero, int cantidad)
        {
            string completado = "";
            int largo = numero.Length;

            for (int c = 1; c <= cantidad - largo; c++)
            {
                completado += "0";
            }
            completado += numero;
            return completado;
        }

        public string formatoNumeroRegistro(string NumeroRegistro)
        {
            string formatoCompleto = "";
            string[] numeros;

            numeros = NumeroRegistro.Split('-');
            if (numeros.Length == 3)
            {
                formatoCompleto = completarCeros(numeros[0], 7) + "-" + completarCeros(numeros[1], 4) + "-" + completarCeros(numeros[2], 8);
            }
            else
            {
                formatoCompleto = NumeroRegistro;
            }
            return formatoCompleto;
        }

    }
}
